package com.tan.kotlintest.encrypt

import android.view.View
import com.tan.kotlintest.R
import com.tan.kotlintest.base.BaseActivity

/**
 * 实现方案/思路：
 * Android端的加密需要4步：
 * 1.随机生成AES密钥
 * 2.根据AES秘钥对数据进行加密
 * 3.使用RSA公钥加密刚刚生成的AES密钥
 * 4.将AES加密过的数据  和  被RSA加密过的AES秘钥  传给服务端
 * <p>
 * 服务端的解密只需3步：
 * 1.获取到客户端传过来的数据
 * 2.使用RSA私钥解密从客户端拿到的“被RSA加密过的AES秘钥”
 * 3.再使用解密出来的AES秘钥来解密被AES加密过的数据
 * <p>
 * 这里需要理解的地方：
 * 1.RSA是公开秘钥系统的代表，可以通过OpenSSL生成RSA证书，拿到公钥和私钥。
 * 2.RSA的公钥用来加密，私钥用来解密。可以这样理解：客户端锁了门，钥匙在服务端那里。
 * 3.RSA加/解密速度慢，不适合大量的数据进行加/解密，它是不对称加密方式。
 * 4.AES加密速度很快，它是对称密码方式，即加密和解密使用同一个密钥的加密方式。
 * <p>
 * 理解了以上之后，我们就很容易想到使用RSA+AES相结合的方式，发挥它们共同的优点来实现一种新的数据加密方案
 */
class TestEncryptActivity : BaseActivity() {

    override fun getContentView(): View? {
        return inflate(R.layout.activity_test_encrypt_layout)
    }

    override fun onContentAdded() {
        setTitleText("测试Android接口加密")
    }
}